//
//  HMStatusViewModel.swift
//  Weibo
//
//  Created by 李学林 on 15/12/10.
//  Copyright © 2015年 tete. All rights reserved.
//

import UIKit
// HMStatus 中所有数据需要处理的逻辑都要放到这个类里面做
class HMStatusViewModel: NSObject {

    var status: HMStatus?{
        didSet{
        
                        
        }
    }
    
    // 会员图标
    var vipImage: UIImage? {
        // 判断用户的等级
            guard let mbrank = status?.user?.mbrank else{
                return nil
            }
        if mbrank > 0 && mbrank < 7 {
            return UIImage(named: "common_icon_membership_level\(mbrank)")
        }
        return nil
    }
    
    var vertical: UIImage? {
        guard let ver = status?.user?.verified else{
        
            return nil
        }
        switch ver {
        
            case 1:
            return UIImage(named: "avatar_vip")
            case 2,3,5:
            return UIImage(named: "avatar_enterprise_vip")
            case 200:
            return UIImage(named: "avatar_grassroot")
            
        default:
            return nil
            
        }
        
    }
    
   // 下面设置StatusToolbar子空间内容的相关逻辑
    var retweetCountStr: String = "转发"
    var commentCountStr: String = "评论"
    var attitudeCountStr: String = "赞"
    
 /// TODO 转发微博的字符串还没弄呢
    
    // 来源字符串
    var sourceStr:String?
    
    // 微博时间
    var creatAtStr:String? {
    
        guard let createDate = NSDate.sinaDate(status!.created_at!) else {
            return ""
        }
        return createDate.sinaDateString
    }
    
/**
 处理创建时间的逻辑
 
 - parameter creatAt: 系统传过来的创建时间
 */
//private func dealCreatTime(creatAtStr: String){
//    
////******************时间逻辑*********
//        // 判断是否为今年
//            //是今年
//                //判断是不是今天
//                    //是今天
//                        //判断是不是一个小时之内
//                            // 是一个小时之内
//                                //判断是不是一分钟之内
//                                    //是一分钟之内
//                                        // 显示:刚刚
//                                    //不是一分钟之内
//                                        // 显示XX分钟之前
//                            // 不是一个小时之内
//                                // XX小时前
//                    //是否是昨天
//                        // 昨天 XX时XX分
//                    //其他
//                        //XX月XX日
//            //不是今年
//                // 显示XXXX年XX月XX日
//    
//    //printLog(creatAt)
//    //Sun Dec 13 14:40:49 +0800 2015
//    let dt = NSDateFormatter()
//    dt.dateFormat = "EEE MMM dd HH:mm:ss z yyyy"
//    // 指定本地化信息
//    dt.locale = NSLocale(localeIdentifier: "en_US")
//    // 微博创建的时间
//    let createDate = dt.dateFromString(creatAtStr)!
//    
//    printLog(createDate)
//    
//    var isThisYear:Bool = false
//    
//    if isThisYear{
//        // 是今年
//    
//        }else{
//        // 不是今年
//        
//    
//        }
//    
//    }

    
    // 这里写的是转发,和评论的个数的逻辑
    private func getCountStr(count: Int, defaulTitle: String) -> String {
        
        if count > 0 {
            // 小于1万显示原数据
            if count < 10000 {
                return "\(count)"
            }else {
                let result = CGFloat(count / 1000) / 10
                
                let resultStr = "\(result)万"
                
                if resultStr.containsString(".0") {
                    return resultStr.stringByReplacingOccurrencesOfString(".0", withString: "")
                }
                return resultStr
            }
        }
        return defaulTitle
        
    }
    
    
    init(status: HMStatus){
        super.init()
        self.status = status
        
        retweetCountStr = getCountStr(self.status?.reposts_count ?? 0, defaulTitle: "转发")
        commentCountStr = getCountStr(self.status?.comments_count ?? 0, defaulTitle: "评论")
        attitudeCountStr = getCountStr(self.status?.attitudes_count ?? 0, defaulTitle: "赞")
        
        
        // 转发微博的逻辑 -----还没写
        
        // <a href="http://weibo.com" rel="nofollow">新浪微博</a>
        // 来源字符串的逻辑
        if let source = status.source where source.containsString("\">") {
            // 判断是否能够找到range
            //printLog(status.source)
            let startRange = source.rangeOfString("\">")!
            let endRange = source.rangeOfString("</")!
            sourceStr = "来自 \(source.substringWithRange(startRange.endIndex..<endRange.startIndex))"
            //printLog(sourceStr!)
        }
        
     
    }
    
}
